package cn.mazexal.exambg.utils;

import org.apache.commons.codec.digest.DigestUtils;

import java.util.Random;


/**
 * @author Administrator
 */
public class MD5Utils {

    private static final int CANTER = 16;


    public static String getMD5(byte[] bytes) {
        return DigestUtils.md5Hex(bytes);
    }

    /**
     * 求一个字符串的md5值
     *
     * @param target 字符串
     * @return md5 value
     */
    public static String MD5(String target) {
        return DigestUtils.md5Hex(target);
    }

    /**
     * @描述 加盐MD5
     * @参数
     * @返回值
     * @创建人 mazexal
     * @创建时间 2020/2/14 0014
     */
    public static String getMD5WithSalt(String target, String salt) {
        return MD5(target + salt);
    }


    public static String getSalt() {
        // 生成一个16位的随机数
        Random random = new Random();
        StringBuilder sBuilder = new StringBuilder(CANTER);
        sBuilder.append(random.nextInt(99999999)).append(random.nextInt(99999999));
        int len = sBuilder.length();
        if (len < CANTER) {
            for (int i = 0; i < CANTER - len; i++) {
                sBuilder.append("0");
            }
        }
        // 生成最终的加密盐
        return sBuilder.toString();
    }

}
